package com.agiantii.ablog.service;

import com.agiantii.ablog.common.R;
import com.agiantii.ablog.pojo.dto.UserLoginDTO;
import com.agiantii.ablog.pojo.dto.UserRegisterDTO;
import com.agiantii.ablog.pojo.User;
import com.agiantii.ablog.pojo.vo.UserVO;
import com.agiantii.ablog.pojo.vo.UserStatsVO;
import java.util.List;

public interface UserService {
    R<User> register(UserRegisterDTO registerDTO);
    R<User> login(UserLoginDTO loginDTO);
    R<User> updateProfile(Long userId, User user);
    R<Void> follow(Long userId, Long followingId);
    R<Void> unfollow(Long userId, Long followingId);
    R<User> getUserInfo(Long userId);
    R<List<UserVO>> getUserList(Integer page, Integer size);
    R<List<UserVO>> getFollowers(Long userId);
    R<List<UserVO>> getFollowing(Long userId);
    R<UserStatsVO> getUserStats(Long userId);
} 